﻿/*
 * Created by SharpDevelop.
 * User: Intel
 * Date: 18.06.2014
 * Time: 15:25
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.Text.RegularExpressions;
namespace Region.Forms
{
  /// <summary>
  /// Description of KontInfo.
  /// </summary>
  public partial class KontInfo : Form
  {
    //private Dictionary<int, Region.Kont> m_konts;
    private Dictionary<int,Dictionary<DateTime,List<Object>>> m_info = new Dictionary<int,Dictionary<DateTime,List<Object>>>();
    Engine m_engine;
    Dictionary<String,Regex> shortName;
    void AddInfo(int KontID,DateTime Time,Object Info)
    {
      if (!m_info.ContainsKey(KontID))
        m_info[KontID] = new Dictionary<DateTime,List<Object>>();
      if (!m_info[KontID].ContainsKey(Time))
        m_info[KontID][Time] = new List<Object>();
      m_info[KontID][Time].Add(Info);
    }
    String NameProcess(String Name)
    {
      foreach(var k in shortName)
        Name = k.Value.Replace(Name,k.Key);
      return Name;
    }
    void loadRaspor()
    {
      var rasporList = new RasporList(m_engine);
      //rasporList.setWhere("IspUserID",m_engine.CurrentUser.UserID);
      rasporList.setWhere("RasporYear",2014);
      rasporList.setWhere("IspUserID",178);
      rasporList.Filter();
      for(int i=0;i<rasporList.NumLines;i++)
        
      {
        Raspor raspor = m_engine.getRaspor(rasporList.getLine(i).RasporID);
        if (raspor.KontID>0&&raspor.RucPodpis>0)
        {
          AddInfo(raspor.KontID,raspor.Start,raspor);
        }
        
        
      }
    }
    void showInfo()
    {
      foreach(var k in m_info)
      {
        int KontID = k.Key;
        Kont kont = m_engine.getKont(KontID);
        var tn = new TreeNode();
        tn.Text = NameProcess(kont.KontName);
        tn.Tag = kont;
        foreach(var d in k.Value)
        {
          var tnp = new TreeNode();
          tnp.Text = d.Key.ToShortDateString()+" Проверка";
          tnp.Tag = kont;           
          tn.Nodes.Add(tnp);
        }
        InfoTree.Nodes.Add(tn);
      }
    }
    public KontInfo(Engine engine)
    {
      //
      // The InitializeComponent() call is required for Windows Forms designer support.
      //
      m_engine = engine;
      InitializeComponent();
      shortName = new Dictionary<String,Regex>();
      shortName["ООО"] = new Regex(@"^\s*Общество\s*с\s*ограниченной\s*ответственностью",RegexOptions.Compiled | RegexOptions.IgnoreCase);
      shortName["ИП"] = new Regex(@"^\s*Индивидуальный\s*предприниматель",RegexOptions.Compiled | RegexOptions.IgnoreCase);
      shortName["ОАО"] = new Regex(@"^\s*Открытое\s*акционерное\s*общество",RegexOptions.Compiled | RegexOptions.IgnoreCase);
      shortName["КГБУЗ"] = new Regex(@"^\s*Краевое\s*государственное\s*бюджетное\s*учреждение\s*здравоохранения",RegexOptions.Compiled | RegexOptions.IgnoreCase);
      shortName["КГУ"] = new Regex(@"^\s*Краевое\s*государственное\s*учреждение",RegexOptions.Compiled | RegexOptions.IgnoreCase);
      shortName["МБДОУ"] = new Regex(@"^\s*Муниципальное\s*бюджетное\s*дошкольное\s*образовательное\s*учреждение",RegexOptions.Compiled | RegexOptions.IgnoreCase);
      shortName["МУЗ"] = new Regex(@"^\s*Муниципальное\s*учреждение\s*здравоохранения",RegexOptions.Compiled | RegexOptions.IgnoreCase);
      shortName["МУП"] = new Regex(@"^\s*Муниципальное\s*унитарное\s*предприятие",RegexOptions.Compiled | RegexOptions.IgnoreCase);
      shortName["МАДОУ"] = new Regex(@"^\s*Муниципальное\s*автономное\s*дошкольное\s*образовательное\s*учреждение",RegexOptions.Compiled | RegexOptions.IgnoreCase);
      shortName["МКДОУ"] = new Regex(@"^\s*Муниципальное\s*каз(ё|е)нное\s*дошкольное\s*образовательное\s*учреждение",RegexOptions.Compiled | RegexOptions.IgnoreCase);
      shortName["МБОУ"] = new Regex(@"^\s*Муниципальное\s*бюджетное\s*общеобразовательное\s*учреждение",RegexOptions.Compiled | RegexOptions.IgnoreCase);
	
      
      loadRaspor();
      showInfo();
     //
      // TODO: Add constructor code after the InitializeComponent() call.
      //
    }
		void KontInfoLoad(object sender, System.EventArgs e)
		{
			
		}
  }
}
